HomeBlogCoursesAboutContact
Home
Blog
Courses
About
Contact

System Design

Learn how to design systems at scale and prepare for system design interviews

Getting Started

Welcome to the course

What is system design?

Chapter I

IP

OSI Model

TCP and UDP

Domain Name System (DNS)

Load Balancing

Clustering

Caching

Content Delivery Network (CDN)

Proxy

Availability

Scalability

Storage

Chapter II

Databases and DBMS

SQL databases

NoSQL databases

SQL vs NoSQL databases

Database Replication

Indexes

Normalization and Denormalization

ACID and BASE consistency models

CAP theorem

PACELC Theorem

Transactions

Distributed Transactions

Sharding

Consistent Hashing

Database Federation

Chapter III

N-tier architecture

Message Brokers

Message Queues

Publish-Subscribe

Enterprise Service Bus (ESB)

Monoliths and Microservices

Event-Driven Architecture (EDA)

Event Sourcing

Command and Query Responsibility Segregation (CQRS)

API Gateway

REST, GraphQL, gRPC

Long polling, WebSockets, Server-Sent Events (SSE)

Chapter IV

Geohashing and Quadtrees

Circuit breaker

Rate Limiting

Service Discovery

SLA, SLO, SLI

Disaster recovery

Virtual Machines (VMs) and Containers

OAuth 2.0 and OpenID Connect (OIDC)

Single Sign-On (SSO)

SSL, TLS, mTLS

Chapter V

System Design Interviews

URL Shortener

WhatsApp

Twitter

Netflix

Uber

Appendix

Next Steps

References

© 2024 Karan Pratap Singh